package com.example.loginpilot_01.pojo.dto;

import lombok.Data;

// 通用API响应类
// 用于封装API的响应结果,包含是否成功,响应数据,响应消息和时间戳
@Data
public class ApiResult<T> {
    private Boolean success;    //是否成功
    private T data;             //响应数据
    private String message;     //响应消息
    private Long timestamp;     //时间戳

    // 成功响应构造方法
    // 用于创建成功响应,包含响应数据和时间戳
    public static <T> ApiResult<T> success(T data) {
        ApiResult<T> result = new ApiResult<>();
        result.setSuccess(true);
        result.setData(data);
        result.setTimestamp(System.currentTimeMillis());    //时间戳,表示响应的时间，参数为当前时间的毫秒数
        return result;
    }

    // 错误响应构造方法
    // 用于创建错误响应,包含错误消息和时间戳
    public static <T> ApiResult<T> error(String message) {
        ApiResult<T> result = new ApiResult<>();
        result.setSuccess(false);
        result.setMessage(message);         //message是错误消息,表示API调用失败的原因
        result.setTimestamp(System.currentTimeMillis());
        return result;
    }
}
